package model

import (
	"gorm.io/gorm"
	"time"
)

type User struct {
	gorm.Model
	Username string `gorm:"column:username;type:varchar(255);comment:账号;not null;" json:"username"` // 账号
	Password string `gorm:"column:password;type:varchar(255);comment:密码;not null;" json:"password"` // 密码
}
type Message struct {
	Id         uint      `gorm:"column:id;type:bigint(20);primaryKey;not null;" json:"id"`
	FromUserId uint      `gorm:"column:from_user_id;type:bigint(20) UNSIGNED;comment:发送者;not null;default:0;" json:"from_user_id"` // 发送者
	ToUserId   uint      `gorm:"column:to_user_id;type:bigint(20) UNSIGNED;comment:接收者;not null;default:0;" json:"to_user_id"`     // 接收者
	Content    string    `gorm:"column:content;type:varchar(255);comment:内容;not null;" json:"content"`                             // 内容
	CreatedAt  time.Time `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
}
type LiveRoom struct {
	Id         uint           `gorm:"column:id;type:bigint(20) UNSIGNED;primaryKey;not null;" json:"id"`
	UserId     uint           `gorm:"column:user_id;type:bigint(20) UNSIGNED;comment:直接间创建人;not null;default:0;" json:"user_id"`                 // 直接间创建人
	NickName   string         `gorm:"column:nick_name;type:varchar(255);comment:昵称;not null;" json:"nick_name"`                                  // 昵称
	StartTime  time.Time      `gorm:"column:start_time;type:datetime(3);comment:开播时间;default:NULL;" json:"start_time"`                           // 开播时间
	EndTime    time.Time      `gorm:"column:end_time;type:datetime(3);comment:结束时间;default:NULL;" json:"end_time"`                               // 结束时间
	Status     uint           `gorm:"column:status;type:bigint(20) UNSIGNED;comment:状态 1:未开播 2:开播 3:下播  4:禁播;not null;default:1;" json:"status"` // 状态 1:未开播 2:开播 3:下播  4:禁播
	OnlineNum  uint           `gorm:"column:online_num;type:bigint(20) UNSIGNED;comment:在线用户数量;not null;default:0;" json:"online_num"`           // 在线用户数量
	GiftNum    uint           `gorm:"column:gift_num;type:bigint(20) UNSIGNED;comment:礼物数量;not null;default:0;" json:"gift_num"`                 // 礼物数量
	CommentNum uint           `gorm:"column:comment_num;type:bigint(20) UNSIGNED;comment:评论数量;not null;default:0;" json:"comment_num"`           // 评论数量
	CreatedAt  time.Time      `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt  time.Time      `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
	DeletedAt  gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
}
type Fan struct {
	Id         uint           `gorm:"column:id;type:bigint(20) UNSIGNED;primaryKey;not null;" json:"id"`
	Username   string         `gorm:"column:username;type:varchar(255);comment:粉丝账号;not null;" json:"username"`                          // 粉丝账号
	LiveUserId uint           `gorm:"column:live_user_id;type:bigint(20) UNSIGNED;comment:主播id;not null;default:0;" json:"live_user_id"` // 主播id
	CreatedAt  time.Time      `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt  time.Time      `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
	DeletedAt  gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
}
